#ifndef COMPACTGRAPH_H_
#define COMPACTGRAPH_H_

#include "graph_support/Graph.h"

#include <vector>
#include <algorithm>


namespace native_orbitor
{

class CompactGraph : public GRAPH_SUPPORT_NS::Graph
{
public:
	CompactGraph( int vertexCount, int edgesCount );

public:
	size_t getVertexCount();
	void addEdge( int beg, int end );

private:
	std::vector< int > stBuf;
	std::vector< int > nxBuf;
	std::vector< int > destBuf;

public:
	int * st;
	int * nx;
	int * dest;

private:
	int k;
};

}

#endif /* COMPACTGRAPH_H_ */
